package com.xmutca.netty;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.codec.string.StringEncoder;
import java.net.InetSocketAddress;

/**
 * @author <a href="mailto:yhy23456@163.com">huiyang.yu</a>
 * @since 2021.12.23
 */
public class HelloClient {

    public static void main(String[] args) throws InterruptedException {
        // 1. 启动类
        new Bootstrap()
            //2. 添加 EventLoop
            .group(new NioEventLoopGroup())
            //3. 选择客户端 channel 实现
            .channel(NioSocketChannel.class)
            //4. 添加处理器
            .handler(new ChannelInitializer<NioSocketChannel>() {
                @Override// 在连接建立后被调用
                protected void initChannel(NioSocketChannel ch) throws Exception {
                    ch.pipeline()
                        .addLast(new StringEncoder());
                }
            })
        // 5. 连接到服务器
        .connect(new InetSocketAddress("localhost",8080))
        .sync()
        .channel()
        .writeAndFlush("hello, world");
    }

}
